package fivestar.ui.main;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.jdesktop.swingx.JXImagePanel;
import org.pushingpixels.flamingo.api.common.JCommandButton;
import org.pushingpixels.flamingo.api.common.JCommandMenuButton;
import org.pushingpixels.flamingo.api.common.JCommandToggleButton;
import org.pushingpixels.flamingo.api.common.StringValuePair;
import org.pushingpixels.flamingo.api.common.icon.ImageWrapperResizableIcon;
import org.pushingpixels.flamingo.api.common.icon.ResizableIcon;
import org.pushingpixels.flamingo.api.common.popup.JCommandPopupMenu;
import org.pushingpixels.flamingo.api.common.popup.JPopupPanel;
import org.pushingpixels.flamingo.api.common.popup.PopupPanelCallback;
import org.pushingpixels.flamingo.api.ribbon.JRibbonBand;
import org.pushingpixels.flamingo.api.ribbon.JRibbonComponent;
import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame;
import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenu;
import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryFooter;
import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryPrimary;
import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntrySecondary;
import org.pushingpixels.flamingo.api.ribbon.RibbonElementPriority;
import org.pushingpixels.flamingo.api.ribbon.RibbonTask;
import org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies;
import org.pushingpixels.substance.api.skin.SubstanceBusinessBlackSteelLookAndFeel;

import fivestar.ui.guest.Guest;

public class MainMenu extends JRibbonFrame {

	private static final long serialVersionUID = -4130148209433074670L;
	int tipoUsuario = 1;
	//private int tipoOpcion = 0;
	// Representa el tipo de asiento:
	// 0: Ingreso
	// 1: Egreso
	// 2: Libro Diario
	private int tipoAsiento = 0;
	JCommandButton registrar;
	JCommandButton editar;
	JCommandButton buscar;
	JCommandButton eliminar;
	JCommandButton informe;
	JCommandButton registrarAsiento;
	JCommandButton buscarAsiento;
	JCommandButton informeAsiento;
	 
	DesktopBackground desktopPane;

	class ConfigurarTema implements ActionListener {

		java.awt.Frame ventana;

		public void setVentana(java.awt.Frame ventana) {
			this.ventana = ventana;
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			Theme selectorTemas = new Theme(ventana, true);
			selectorTemas.setVisible(true);
		}
	}

	class ConfigurarFondo implements ActionListener {

		JXImagePanel ventana;

		public void setVentana(JXImagePanel ventana) {
			this.ventana = ventana;
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			try {
				ReaderProperties lector = new ReaderProperties();
				Background selectorFondo = new Background(null, true,
						lector.obtenerPropiedad("Fondo"));
				selectorFondo.setVisible(true);
				String nuevoFondo = selectorFondo.getRuta();
				if (nuevoFondo != "") {
					ImageIcon img = new ImageIcon(nuevoFondo);
					ventana.setImage(img.getImage());
					ventana.setStyle(JXImagePanel.Style.SCALED);
					lector.ubicarPropiedad("Fondo", nuevoFondo);
				}
			} catch (Exception exception) {
			}

		}
	}

	public static ResizableIcon getResizableIconFromResource(String resource) {
		return ImageWrapperResizableIcon.getIcon(
				new ImageIcon(MainMenu.class.getResource(resource)).getImage(),
				new Dimension(50, 50));
	}

	/**
	 * Devuelve la banda de administracion de usuarios
	 * 
	 * @return Un elemento JRibbonBand
	 */
	@SuppressWarnings({ "unchecked", "rawtypes" })
	protected JRibbonBand getBandaUsuarios() {

		JRibbonBand usuarios = new JRibbonBand("Usuarios", null);

		usuarios.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(usuarios
						.getControlPanel())));

		JCommandButton registrarUsuario = new JCommandButton(
				"Registrar",
				getResizableIconFromResource("/fivestar/ui/images/UsuariosRegistrar.png"));
		registrarUsuario
				.setCommandButtonKind(JCommandButton.CommandButtonKind.POPUP_ONLY);
		registrarUsuario.setPopupCallback(new PopupPanelCallback() {

			@Override
			public JPopupPanel getPopupPanel(JCommandButton jcb) {
				JCommandPopupMenu menu = new JCommandPopupMenu();
				JCommandMenuButton registroAdministradorGral = new JCommandMenuButton(
						"Administrador General",
						getResizableIconFromResource("/fivestar/ui/images/AdministradorRegistrar.png"));
				registroAdministradorGral
						.addActionListener(new ActionListener() {

							@Override
							public void actionPerformed(ActionEvent e) {

								Guest jip = new Guest();
								// jip.addInternalFrameListener(this);
								desktopPane.add(jip);
								jip.show();
								// JDialogPrueba regA = new JDialogPrueba(null,
								// true, 4);
								// regA.setVisible(true);
								// PnlGuestList mg = new PnlGuestList();
								// mg.setVisible(true);
							}
						});
				JCommandMenuButton registroAdministradorLocal = new JCommandMenuButton(
						"Administrador Local",
						getResizableIconFromResource("/fivestar/ui/images/AdministradorRegistrar.png"));
				registroAdministradorLocal
						.addActionListener(new ActionListener() {

							@Override
							public void actionPerformed(ActionEvent e) {
								// JDialogPrueba regA = new JDialogPrueba(null,
								// true, 3);
								// regA.setVisible(true);
							}
						});
				JCommandMenuButton registroContador = new JCommandMenuButton(
						"Contador",
						getResizableIconFromResource("/fivestar/ui/images/ContadoraRegistrar.png"));
				registroContador.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						// JDialogPrueba regC = new JDialogPrueba(null, true,
						// 2);
						// regC.setVisible(true);
					}
				});
				JCommandMenuButton registroInvitado = new JCommandMenuButton(
						"Invitado",
						getResizableIconFromResource("/fivestar/ui/images/ContadoraRegistrar.png"));
				registroInvitado.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						// JDialogPrueba regC = new JDialogPrueba(null, true,
						// 1);
						// regC.setVisible(true);
					}
				});
				menu.addMenuButton(registroAdministradorGral);
				menu.addMenuButton(registroAdministradorLocal);
				menu.addMenuButton(registroContador);
				menu.addMenuButton(registroInvitado);
				return menu;
			}
		});
		JCommandButton editarUsuario = new JCommandButton("Editar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		editarUsuario.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba modU = new JDialogPrueba(null, true);
				// modU.setVisible(true);

			}
		});
		JCommandButton buscarUsuario = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarUsuario.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.administrativo.ui.usuarios.Usuarios modUs = new
				// Usuarios(null, true);
				// modUs.setVisible(true);
				// JDialogPrueba modUs = new JDialogPrueba(null, true, 1);
				// modUs.setVisible(true);
			}
		});
		JCommandButton informeUsuario = new JCommandButton("Informe",
				getResizableIconFromResource("/fivestar/ui/images/Informe.png"));
		informeUsuario.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent ae) {
				// JDialogPrueba modU = new JDialogPrueba(null, true);
			}
		});

		usuarios.addCommandButton(registrarUsuario, RibbonElementPriority.TOP);
		usuarios.addCommandButton(editarUsuario, RibbonElementPriority.MEDIUM);
		usuarios.addCommandButton(buscarUsuario, RibbonElementPriority.MEDIUM);
		usuarios.addCommandButton(informeUsuario, RibbonElementPriority.MEDIUM);

		return usuarios;
	}

	/**
	 * Devuelve la banda de administracion de sedes
	 * 
	 * @return Un elemento JRibbonBand
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaSedes() {
		JRibbonBand sedes = new JRibbonBand("Sedes", null);
		int tipoUsuario = 0;
		if (tipoUsuario == 0) {
			JCommandButton registrarSede = new JCommandButton(
					"Registrar",
					getResizableIconFromResource("/fivestar/ui/images/RegistrarSede.png"));
			registrarSede.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					// JDialogPrueba regSed = new JDialogPrueba(null, true);
					// regSed.setVisible(true);
				}
			});
			JCommandButton editarSede = new JCommandButton(
					"Editar",
					getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
			editarSede.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					// JDialogPrueba editSed = new JDialogPrueba(null, true);
					// editSed.setVisible(true);
				}
			});

			sedes.addCommandButton(registrarSede, RibbonElementPriority.TOP);
			sedes.addCommandButton(editarSede, RibbonElementPriority.MEDIUM);
		}

		JCommandButton buscarSede = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarSede.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba busSed = new JDialogPrueba(null, true);
				// busSed.setVisible(true);
			}
		});

		if (tipoUsuario == 0) {
			sedes.addCommandButton(buscarSede, RibbonElementPriority.MEDIUM);
		} else {
			sedes.addCommandButton(buscarSede, RibbonElementPriority.TOP);
		}

		sedes.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(sedes
						.getControlPanel())));// </editor-fold>
		return sedes;

	}

	/**
	 * Devuelve la banda de administracion de objetivos, resultados y
	 * actividades
	 * 
	 * @return Un elemento JRibbonBand
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaAdministrativo() {
		int tipoUsuario = 0;
		if (tipoUsuario == 0) {
			registrar = new JCommandButton(
					"Registrar",
					getResizableIconFromResource("/fivestar/ui/images/ORAregistrart.png"));
			registrar.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					// switch (tipoOpcion) {
					// case 1:
					// JDialogPrueba objReg = new JDialogPrueba(null, true);
					// objReg.setVisible(true);
					// break;
					// case 2:
					// JDialogPrueba resulReg = new JDialogPrueba(null, true);
					// resulReg.setVisible(true);
					// break;
					// default:
					// JDialogPrueba actReg = new JDialogPrueba(null, true);
					// actReg.setVisible(true);
					// break;
					// }
				}
			});

			editar = new JCommandButton(
					"Editar",
					getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
			editar.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					// JDialogPrueba buscarObjetivo = new JDialogPrueba(null,
					// true);
					// buscarObjetivo.setVisible(true);
					// switch (tipoOpcion) {
					// case 1:
					// JDialogPrueba buscarObjetivo = new JDialogPrueba(null,
					// true,2);
					// buscarObjetivo.setVisible(true);
					// List<omicron.administrativo.entidades.Objetivo> objetivos
					// = buscarObjetivo.getObjetivosSeleccionados();
					// if (!objetivos.isEmpty()) {
					// omicron.administrativo.ui.objetivos.Registro
					// modificarObjetivo = new
					// omicron.administrativo.ui.objetivos.Registro(null, true,
					// objetivos.get(0));
					// modificarObjetivo.setVisible(true);
					// } else {
					// if (!buscarObjetivo.isCancelacion()) {
					// JOptionPane.showMessageDialog(null,
					// "No se ha elegido ningún objetivo", "Advertencia",
					// JOptionPane.INFORMATION_MESSAGE);
					// }
					// }
					// break;
					// case 2:
					// omicron.administrativo.ui.resultados.Buscar
					// buscarResultados = new
					// omicron.administrativo.ui.resultados.Buscar(null, true,
					// 2);
					// buscarResultados.setVisible(true);
					// List<omicron.administrativo.entidades.Resultado>
					// resultados =
					// buscarResultados.getResultadosSeleccionados();
					// if (!resultados.isEmpty()) {
					// omicron.administrativo.ui.resultados.Registro
					// modificarResultado = new
					// omicron.administrativo.ui.resultados.Registro(null, true,
					// resultados.get(0));
					// modificarResultado.setVisible(true);
					// }
					// break;
					// default:
					// omicron.administrativo.ui.actividades.Buscar
					// buscarActividades = new
					// omicron.administrativo.ui.actividades.Buscar(null, true,
					// 2);
					// buscarActividades.setVisible(true);
					// List<omicron.administrativo.entidades.Actividad>
					// actividades =
					// buscarActividades.getActividadesSeleccionadas();
					// if (!actividades.isEmpty()) {
					// omicron.administrativo.ui.actividades.Registro
					// modificarActividad = new
					// omicron.administrativo.ui.actividades.Registro(null,
					// true, actividades.get(0));
					// modificarActividad.setVisible(true);
					// }
					// }
				}
			});

			eliminar = new JCommandButton(
					"Eliminar",
					getResizableIconFromResource("/fivestar/ui/images/Eliminar.png"));
			eliminar.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {

					// JDialogPrueba eliminarObjetivos = new JDialogPrueba(null,
					// true);
					// eliminarObjetivos.setVisible(true);

					// if (tipoOpcion == 1) {
					// omicron.administrativo.ui.objetivos.Buscar
					// eliminarObjetivos = new Buscar(null, true, 1);
					// eliminarObjetivos.setVisible(true);
					// }
					// if (tipoOpcion == 2) {
					// omicron.administrativo.ui.resultados.Buscar
					// eliminarResultados = new
					// omicron.administrativo.ui.resultados.Buscar(null, true,
					// 1);
					// eliminarResultados.setVisible(true);
					// }
					// if (tipoOpcion == 3) {
					// omicron.administrativo.ui.actividades.Buscar
					// eliminarActividades = new
					// omicron.administrativo.ui.actividades.Buscar(null, true,
					// 1);
					// eliminarActividades.setVisible(true);
					//
					// }
				}
			});

			registrar.setEnabled(false);
			editar.setEnabled(false);
			eliminar.setEnabled(false);
		}

		buscar = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				// JDialogPrueba objBus = new JDialogPrueba(null, true);
				// objBus.setVisible(true);

				// if (tipoOpcion == 1) {
				// omicron.administrativo.ui.objetivos.Buscar objBus = new
				// omicron.administrativo.ui.objetivos.Buscar(null, true);
				// objBus.setVisible(true);
				// }
				// if (tipoOpcion == 2) {
				// omicron.administrativo.ui.resultados.Buscar resulBus = new
				// omicron.administrativo.ui.resultados.Buscar(null, true);
				// resulBus.setVisible(true);
				// }
				// if (tipoOpcion == 3) {
				// omicron.administrativo.ui.actividades.Buscar actBus = new
				// omicron.administrativo.ui.actividades.Buscar(null, true);
				// actBus.setVisible(true);
				// }
			}
		});

		informe = new JCommandButton("Informe",
				getResizableIconFromResource("/fivestar/ui/images/Informe.png"));
		informe.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent ae) {

				// JDialogPrueba reporteObjetivos = new JDialogPrueba(null,
				// true);
				// reporteObjetivos.setVisible(true);

				// switch (tipoOpcion) {
				// case 1:
				// omicron.administrativo.ui.objetivos.Reporte reporteObjetivos
				// = new Reporte();
				// break;
				// case 2:
				// omicron.administrativo.ui.resultados.Reporte reporteResultado
				// = new omicron.administrativo.ui.resultados.Reporte();
				// break;
				// default:
				// omicron.administrativo.ui.actividades.Reporte
				// reporteActividades = new
				// omicron.administrativo.ui.actividades.Reporte();
				// break;
				// }
			}
		});

		buscar.setEnabled(false);
		informe.setEnabled(false);

		JRibbonBand administrativos = new JRibbonBand("Administrativo", null);
		// JRibbonGallery galeria = new JRibbonGallery();
		// Iconos de la galeria
		JCommandToggleButton objetivos = new JCommandToggleButton(
				"Objetivo",
				getResizableIconFromResource("/fivestar/ui/images/Objetivo.png"));
		objetivos.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				// JDialogPrueba reporteObjetivos = new JDialogPrueba(null,
				// true);
				// reporteObjetivos.setVisible(true);
				// tipoOpcion = 1;
				// if (tipoUsuario == 0) {
				// registrar.setEnabled(true);
				// editar.setEnabled(true);
				// eliminar.setEnabled(true);
				// }
				// buscar.setEnabled(true);
				// informe.setEnabled(true);

			}
		});
		JCommandToggleButton resultados = new JCommandToggleButton(
				"Resultado",
				getResizableIconFromResource("/fivestar/ui/images/Resultado.png"));
		resultados.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba reporteObjetivos = new JDialogPrueba(null,
				// true);
				// reporteObjetivos.setVisible(true);
				// tipoOpcion = 2;
				// if (tipoUsuario == 0) {
				// registrar.setEnabled(true);
				// editar.setEnabled(true);
				// eliminar.setEnabled(true);
				// }
				// buscar.setEnabled(true);
				// informe.setEnabled(true);

			}
		});
		JCommandToggleButton actividades = new JCommandToggleButton(
				"Actividad",
				getResizableIconFromResource("/fivestar/ui/images/Actividad.png"));
		actividades.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba reporteObjetivos = new JDialogPrueba(null,
				// true);
				// reporteObjetivos.setVisible(true);
				// tipoOpcion = 3;
				// if (tipoUsuario == 0) {
				// registrar.setEnabled(true);
				// editar.setEnabled(true);
				// eliminar.setEnabled(true);
				// }
				// buscar.setEnabled(true);
				// informe.setEnabled(true);

			}
		});

		List<JCommandToggleButton> listaBotones = new LinkedList<JCommandToggleButton>();
		listaBotones.add(objetivos);
		listaBotones.add(resultados);
		listaBotones.add(actividades);

		List<StringValuePair<List<JCommandToggleButton>>> lista = new LinkedList<StringValuePair<List<JCommandToggleButton>>>();
		lista.add(new StringValuePair<List<JCommandToggleButton>>(
				"Administracion", listaBotones));

		Map<RibbonElementPriority, Integer> prioridades = new HashMap<RibbonElementPriority, Integer>();

		prioridades.put(RibbonElementPriority.TOP, new Integer(1));
		prioridades.put(RibbonElementPriority.TOP, new Integer(2));
		prioridades.put(RibbonElementPriority.TOP, new Integer(3));

		// galeria.addRibbonGalleryButtons("galeria 0", objetivos, resultados,
		// actividades);
		administrativos.addRibbonGallery("GaleriaAdmininistracion", lista,
				prioridades, 3, 1, RibbonElementPriority.TOP);
		// administrativos.addRibbonGalleryButtons("Galeria 1", "botones",
		// objetivos, resultados, actividades);

		if (tipoUsuario == 0) {
			administrativos.addCommandButton(registrar,
					RibbonElementPriority.TOP);
			administrativos
					.addCommandButton(informe, RibbonElementPriority.TOP);
			administrativos.addCommandButton(editar,
					RibbonElementPriority.MEDIUM);
			administrativos.addCommandButton(buscar,
					RibbonElementPriority.MEDIUM);
			administrativos.addCommandButton(eliminar,
					RibbonElementPriority.MEDIUM);
		} else {
			administrativos
					.addCommandButton(informe, RibbonElementPriority.TOP);
			administrativos.addCommandButton(buscar, RibbonElementPriority.TOP);
		}

		administrativos.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(administrativos
						.getControlPanel())));
		return administrativos;
	}

	/**
	 * Devuelve la banda de administracion de partidas
	 * 
	 * @return Un elemento JRibbonBand
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaPartidas() {
		JRibbonBand partidas = new JRibbonBand("Cuentas", null);
		JCommandButton registrarPartida = null;
		JCommandButton editarPartida = null;
		JCommandButton eliminarPartida = null;
		if (tipoUsuario == 0) {
			registrarPartida = new JCommandButton(
					"Registrar",
					getResizableIconFromResource("/fivestar/ui/images/Partidas.png"));
			// registrarPartida.setCommandButtonKind(JCommandButton.CommandButtonKind.ACTION_AND_POPUP_MAIN_ACTION);
			registrarPartida.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					// JDialogPrueba incluirPartida = new JDialogPrueba(null,
					// true);
					// incluirPartida.setVisible(true);
				}
			});
			// registrarPartida.setPopupCallback(new PopupPanelCallback() {
			//
			// public JPopupPanel getPopupPanel(JCommandButton jcb) {
			// JCommandPopupMenu menu = new JCommandPopupMenu();
			// JCommandMenuButton registroPartidaGeneral = new
			// JCommandMenuButton("Partida general",
			// getResizableIconFromResource("/omicron/imagenes/PartidaGen.png"));
			// registroPartidaGeneral.addActionListener(new ActionListener() {
			//
			// public void actionPerformed(ActionEvent e) {
			// omicron.presupuesto.ui.partidas.Incluir incluirPartida = new
			// Incluir(null, true);
			// incluirPartida.setVisible(true);
			// }
			// });
			// JCommandMenuButton registroPartidaAuxiliar = new
			// JCommandMenuButton("Partida final",
			// getResizableIconFromResource("/omicron/imagenes/PartidaAux.png"));
			// registroPartidaAuxiliar.addActionListener(new ActionListener() {
			//
			// public void actionPerformed(ActionEvent e) {
			// omicron.presupuesto.ui.partidas.Incluir incluirPartida = new
			// Incluir(null, true);
			// incluirPartida.establecerPartidaFinal();
			// incluirPartida.setVisible(true);
			// }
			// });
			// menu.addMenuButton(registroPartidaGeneral);
			// menu.addMenuButton(registroPartidaAuxiliar);
			// return menu;
			// }
			// });

			editarPartida = new JCommandButton(
					"Editar",
					getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
			editarPartida.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {

					// JDialogPrueba reporteObjetivos = new JDialogPrueba(null,
					// true);
					// reporteObjetivos.setVisible(true);
					// omicron.presupuesto.ui.partidas.Buscar buscarPartidas =
					// new omicron.presupuesto.ui.partidas.Buscar(null, true,
					// 2);
					// buscarPartidas.setVisible(true);
					// List<omicron.presupuesto.entidades.Partida> partidas =
					// buscarPartidas.getPartidasSeleccionadas();
					// if(!partidas.isEmpty()){
					// omicron.presupuesto.ui.partidas.Incluir modificarPartidas
					// = new Incluir(null, true, partidas.get(0));
					// modificarPartidas.setVisible(true);
					// }
				}
			});
			eliminarPartida = new JCommandButton(
					"Eliminar",
					getResizableIconFromResource("/fivestar/ui/images/Eliminar.png"));
			eliminarPartida.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					// JDialogPrueba eliminarPartidas = new JDialogPrueba(null,
					// true);
					// eliminarPartidas.setVisible(true);
				}
			});
		}

		JCommandButton buscarPartida = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarPartida.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba buscar = new JDialogPrueba(null, true);
				// buscar.setVisible(true);
			}
		});

		if (tipoUsuario == 0) {
			partidas.addCommandButton(registrarPartida,
					RibbonElementPriority.TOP);
			partidas.addCommandButton(editarPartida,
					RibbonElementPriority.MEDIUM);
			partidas.addCommandButton(buscarPartida,
					RibbonElementPriority.MEDIUM);
			partidas.addCommandButton(eliminarPartida,
					RibbonElementPriority.MEDIUM);
		} else {
			partidas.addCommandButton(buscarPartida, RibbonElementPriority.TOP);
		}
		partidas.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(partidas
						.getControlPanel())));
		return partidas;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaConfiguraciones() {
		JRibbonBand configuraciones = new JRibbonBand("Configuraciones", null);

		JCommandButton buscarCodsSRI = new JCommandButton(
				"Registrar Códigos SRI",
				getResizableIconFromResource("/fivestar/ui/images/PresupInicial.png"));
		buscarCodsSRI.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba buscarCodsSRI = new JDialogPrueba(null, true);
				// buscarCodsSRI.setVisible(true);
			}
		});

		JCommandButton registroDobleAsiento = new JCommandButton(
				"Doble Asiento",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		registroDobleAsiento.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba registroDobleAsiento = new JDialogPrueba(null,
				// true);
				// registroDobleAsiento.setVisible(true);
			}
		});

		JCommandButton registroPeriodo = new JCommandButton(
				"Período",
				getResizableIconFromResource("/fivestar/ui/images/PresupInicial.png"));
		registroPeriodo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JDialogPrueba registroPerioso = new JDialogPrueba(null,
				// true);
				// registroPerioso.setVisible(true);
			}
		});

		if (tipoUsuario == 0) {
			configuraciones.addCommandButton(buscarCodsSRI,
					RibbonElementPriority.TOP);
			configuraciones.addCommandButton(registroDobleAsiento,
					RibbonElementPriority.TOP);
			configuraciones.addCommandButton(registroPeriodo,
					RibbonElementPriority.TOP);
		}

		configuraciones.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(configuraciones
						.getControlPanel())));
		return configuraciones;
	}

	/**
	 * Devuelve el task de Administrativo
	 * 
	 * @param titulo
	 *            Representa el titulo de RibbonTask
	 * @param keyTip
	 *            Representa la tecla de acceso Rapido al RibbonTask
	 * @return Un elemento RibbonTask
	 */
	protected RibbonTask getRibbonTaskAdministrativo(String titulo,
			String keyTip) {
		RibbonTask administracion = null;
		// int tipoUsuario = 0;
		if (tipoUsuario == 0) {
			administracion = new RibbonTask(titulo, getBandaUsuarios(),
					getBandaAdministrativo(), getBandaSedes(),
					getBandaPartidas(), getBandaConfiguraciones());
			// administracion = new RibbonTask(titulo, getBandaUsuarios());

		} else {
			// administracion = new RibbonTask(titulo, getBandaAdministrativo(),
			// getBandaSedes(), getBandaPartidas(), getBandaConfiguraciones());
			administracion = new RibbonTask(titulo, getBandaUsuarios(),
					getBandaAdministrativo(), getBandaSedes(),
					getBandaPartidas(), getBandaConfiguraciones());
		}
		administracion.setKeyTip(keyTip);
		return administracion;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaPresupuesto() {
		JRibbonBand presupuestoInicial = new JRibbonBand("Presupuesto inicial",
				null);

		JCommandButton asignarPresupuestoGeneral = new JCommandButton(
				"Global",
				getResizableIconFromResource("/fivestar/ui/images/PresupInicial.png"));
		asignarPresupuestoGeneral.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.presupuestoprograma.Incluir
				// incluirPresupuesto = new
				// omicron.presupuesto.ui.presupuestoprograma.Incluir(null,
				// true);
				// incluirPresupuesto.setVisible(true);
				// JDialogPrueba resulReg = new JDialogPrueba(null, true);
				// resulReg.setVisible(true);
			}
		});

		JCommandButton asignarPresupuestoInicial = new JCommandButton(
				"Anual",
				getResizableIconFromResource("/fivestar/ui/images/PresupInicial.png"));
		asignarPresupuestoInicial.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.presupuestoinicial.Incluir
				// incluirPresupInicial = new
				// omicron.presupuesto.ui.presupuestoinicial.Incluir(null,
				// true);
				// incluirPresupInicial.setVisible(true);
				// JDialogPrueba resulReg = new JDialogPrueba(null, true);
				// resulReg.setVisible(true);
			}
		});

		JCommandButton editarPreupuestoInicial = new JCommandButton("Editar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		editarPreupuestoInicial.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.presupuestoinicial.IncluirResultadoPresupuesto
				// incluirResultPresup = new IncluirResultadoPresupuesto(null,
				// true);
				// incluirResultPresup.setVisible(true);
				// JDialogPrueba resulReg = new JDialogPrueba(null, true);
				// resulReg.setVisible(true);
			}
		});

		JCommandButton buscarPresupuestoInicial = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarPresupuestoInicial.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.presupuestoinicial.Incluir
				// incluirPresupInicial = new
				// omicron.presupuesto.ui.presupuestoinicial.Incluir(null,
				// true);
				// incluirPresupInicial.setVisible(true);
				// JDialogPrueba resulReg = new JDialogPrueba(null, true);
				// resulReg.setVisible(true);
			}
		});

		JCommandButton informePresupuestoInicial = new JCommandButton(
				"Informe General",
				getResizableIconFromResource("/fivestar/ui/images/Informe.png"));
		informePresupuestoInicial.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.presupuestoinicial.ReportePresupuestoGeneral
				// reporte = new ReportePresupuestoGeneral();
				// JDialogPrueba resulReg = new JDialogPrueba(null, true);
				// resulReg.setVisible(true);
			}
		});

		presupuestoInicial.addCommandButton(asignarPresupuestoGeneral,
				RibbonElementPriority.TOP);
		presupuestoInicial.addCommandButton(asignarPresupuestoInicial,
				RibbonElementPriority.TOP);
		presupuestoInicial.addCommandButton(editarPreupuestoInicial,
				RibbonElementPriority.TOP);
		presupuestoInicial.addCommandButton(buscarPresupuestoInicial,
				RibbonElementPriority.TOP);
		presupuestoInicial.addCommandButton(informePresupuestoInicial,
				RibbonElementPriority.TOP);

		presupuestoInicial.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(presupuestoInicial
						.getControlPanel())));
		return presupuestoInicial;
	}

	int sedeEscogida = -1;

	protected JRibbonBand getBandaReportePresupuesto() {
		JRibbonBand bandaReportesPresupuesto = new JRibbonBand(
				"Reportes Presupuesto", null);

		@SuppressWarnings("rawtypes")
		JComboBox selectorSedes = new JComboBox();
		// AdministradorSedes administradorSedes = new AdministradorSedes();
		try {
			// selectorSedes.setModel(new
			// ListComboBoxModel(administradorSedes.listarSedes()));
			sedeEscogida = 1;
		} catch (Exception ex) {
			// Logger.getLogger(Omicron.class.getName()).log(Level.SEVERE, null,
			// ex);
		}

		selectorSedes.addItemListener(new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {
				// sedeEscogida =
				// ((omicron.administrativo.entidades.Sede)e.getItem()).getCodigo();
			}
		});

		JRibbonComponent sedesComboWrapper = new JRibbonComponent(selectorSedes);

		bandaReportesPresupuesto.addRibbonComponent(sedesComboWrapper);

		JButton botonPresupuesto = new JButton("Reporte", null);

		botonPresupuesto.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.presupuestoinicial.ReportePresupuestoPorSede
				// reporte = new ReportePresupuestoPorSede(sedeEscogida);
			}
		});
		JRibbonComponent informePresupuestoInicial = new JRibbonComponent(
				botonPresupuesto);

		bandaReportesPresupuesto.addRibbonComponent(informePresupuestoInicial);

		return bandaReportesPresupuesto;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaReformas() {
		JRibbonBand reformas = new JRibbonBand("Reformas", null);

		JCommandButton registrarReforma = new JCommandButton(
				"Registrar",
				getResizableIconFromResource("/fivestar/ui/images/Reformas.png"));
		registrarReforma.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.reformas.IncluirReformaIndividual
				// incluirReforma = new
				// omicron.presupuesto.ui.reformas.IncluirReformaIndividual(null,
				// true);
				// incluirReforma.setVisible(true);
			}
		});
		JCommandButton editarReforma = new JCommandButton("Editar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		editarReforma.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.reformas.ModificarReforma
				// modificarReforma = new
				// omicron.presupuesto.ui.reformas.ModificarReforma(null, true);
				// modificarReforma.setVisible(true);
			}
		});
		JCommandButton buscarReforma = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarReforma.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.reformas.BuscarPartida buscarReforma =
				// new omicron.presupuesto.ui.reformas.BuscarPartida(null,
				// true);
				// buscarReforma.setVisible(true);
			}
		});

		reformas.addCommandButton(registrarReforma, RibbonElementPriority.TOP);
		reformas.addCommandButton(editarReforma, RibbonElementPriority.MEDIUM);
		reformas.addCommandButton(buscarReforma, RibbonElementPriority.MEDIUM);

		reformas.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(reformas
						.getControlPanel())));
		return reformas;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaDisponibilidad() {
		JRibbonBand disponibilidad = new JRibbonBand("Disponibilidad", null);

		JCommandButton crearDisponibilidad = new JCommandButton(
				"Nueva",
				getResizableIconFromResource("/fivestar/ui/images/Disponibilidad.png"));
		crearDisponibilidad.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.disponibilidad.Incluir
				// incluirDisponibilidad = new
				// omicron.presupuesto.ui.disponibilidad.Incluir(null, true);
				// incluirDisponibilidad.setVisible(true);
			}
		});
		JCommandButton editarDisponibilidad = new JCommandButton("Editar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		editarDisponibilidad.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.disponibilidad.BusquedaDisponibilidad
				// busquedaDisponibilidad = new
				// omicron.presupuesto.ui.disponibilidad.BusquedaDisponibilidad(null,
				// true);
				// busquedaDisponibilidad.setVisible(true);
			}
		});

		JCommandButton buscarDisponibilidad = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarDisponibilidad.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.presupuesto.ui.disponibilidad.BusquedaDisponibilidad
				// busquedaDisponibilidad = new
				// omicron.presupuesto.ui.disponibilidad.BusquedaDisponibilidad(null,
				// true);
				// busquedaDisponibilidad.setVisible(true);
			}
		});

		disponibilidad.addCommandButton(crearDisponibilidad,
				RibbonElementPriority.TOP);
		disponibilidad.addCommandButton(editarDisponibilidad,
				RibbonElementPriority.TOP);
		disponibilidad.addCommandButton(buscarDisponibilidad,
				RibbonElementPriority.TOP);

		disponibilidad.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(disponibilidad
						.getControlPanel())));
		return disponibilidad;
	}

	protected RibbonTask getRibbonTaskPresupuesto(String titulo, String keyTip) {
		RibbonTask presupuesto = null;
		// presupuesto = new RibbonTask(titulo, getBandaPresupuesto(),
		// getBandaReformas(), getBandaDisponibilidad(),
		// getBandaReportePresupuesto());
		presupuesto = new RibbonTask(titulo, getBandaPresupuesto(),
				getBandaReformas(), getBandaDisponibilidad());
		presupuesto.setKeyTip(keyTip);
		return presupuesto;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaAsientosContables() {
		registrarAsiento = new JCommandButton(
				"Registrar",
				getResizableIconFromResource("/fivestar/ui/images/ORAregistrart.png"));
		registrarAsiento.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
				if (tipoAsiento == 0) {
					// omicron.contabilidad.ui.ingresos.RegistroIngreso regIng =
					// new
					// omicron.contabilidad.ui.ingresos.RegistroIngreso(null,
					// true);
					// regIng.setVisible(true);
				}
				if (tipoAsiento == 1) {
					// omicron.contabilidad.ui.egresos.Registro regEgreso = new
					// omicron.contabilidad.ui.egresos.Registro(null, true);
					// regEgreso.setVisible(true);
				}
				if (tipoAsiento == 2) {
					// omicron.contabilidad.ui.librodiario.Registro regLibro =
					// new omicron.contabilidad.ui.librodiario.Registro(null,
					// true);
					// regLibro.setVisible(true);
				}
			}
		});

		buscarAsiento = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarAsiento.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// ModoBusqueda modo = ModoBusqueda.INGRESO;
				//
				// if (tipoAsiento == 1) {
				// modo = ModoBusqueda.EGRESO;
				// }
				// if (tipoAsiento == 2) {
				// modo = ModoBusqueda.LIBRO_DIARIO;
				// }
				// omicron.contabilidad.ui.egresos.Buscar regIng = new
				// omicron.contabilidad.ui.egresos.Buscar(null, true, modo);
				// regIng.setVisible(true);
			}
		});

		informeAsiento = new JCommandButton("Informe",
				getResizableIconFromResource("/fivestar/ui/images/Informe.png"));
		informeAsiento.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// ModoBusqueda modo = ModoBusqueda.INGRESO;
				//
				// if (tipoAsiento == 1) {
				// modo = ModoBusqueda.EGRESO;
				// }
				// if (tipoAsiento == 2) {
				// modo = ModoBusqueda.LIBRO_DIARIO;
				// }
				// omicron.contabilidad.ui.egresos.Buscar regIng = new
				// omicron.contabilidad.ui.egresos.Buscar(null, true, modo);
				// regIng.setVisible(true);
			}
		});

		registrarAsiento.setEnabled(false);
		buscarAsiento.setEnabled(false);
		informeAsiento.setEnabled(false);

		JRibbonBand asientos = new JRibbonBand("Asientos", null);

		JCommandToggleButton asientoIngreso = new JCommandToggleButton(
				"Ingreso",
				getResizableIconFromResource("/fivestar/ui/images/Ingreso.png"));
		asientoIngreso.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				tipoAsiento = 0;
				registrarAsiento.setEnabled(true);
				buscarAsiento.setEnabled(true);
				informeAsiento.setEnabled(true);
			}
		});

		JCommandToggleButton asientoEgreso = new JCommandToggleButton("Egreso",
				getResizableIconFromResource("/fivestar/ui/images/Egreso.png"));
		asientoEgreso.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				tipoAsiento = 1;
				registrarAsiento.setEnabled(true);
				buscarAsiento.setEnabled(true);
				informeAsiento.setEnabled(true);
			}
		});

		JCommandToggleButton asientoLibroDiario = new JCommandToggleButton(
				"Libro",
				getResizableIconFromResource("/fivestar/ui/images/Libro.png"));
		asientoLibroDiario.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				tipoAsiento = 2;
				registrarAsiento.setEnabled(true);
				buscarAsiento.setEnabled(true);
				informeAsiento.setEnabled(true);
			}
		});

		List<JCommandToggleButton> listaBotonesAsientos = new LinkedList<JCommandToggleButton>();
		listaBotonesAsientos.add(asientoIngreso);
		listaBotonesAsientos.add(asientoEgreso);
		listaBotonesAsientos.add(asientoLibroDiario);

		List<StringValuePair<List<JCommandToggleButton>>> listaAsientos = new LinkedList<StringValuePair<List<JCommandToggleButton>>>();
		listaAsientos.add(new StringValuePair<List<JCommandToggleButton>>(
				"Asientos", listaBotonesAsientos));

		Map<RibbonElementPriority, Integer> prioridadesAsientos = new HashMap<RibbonElementPriority, Integer>();

		prioridadesAsientos.put(RibbonElementPriority.TOP, new Integer(1));
		prioridadesAsientos.put(RibbonElementPriority.TOP, new Integer(2));
		prioridadesAsientos.put(RibbonElementPriority.TOP, new Integer(3));

		asientos.addRibbonGallery("GaleriaAsientos", listaAsientos,
				prioridadesAsientos, 3, 1, RibbonElementPriority.TOP);

		asientos.addCommandButton(registrarAsiento,
				RibbonElementPriority.MEDIUM);
		asientos.addCommandButton(buscarAsiento, RibbonElementPriority.MEDIUM);
		asientos.addCommandButton(informeAsiento, RibbonElementPriority.MEDIUM);

		asientos.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(asientos
						.getControlPanel())));
		return asientos;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaMayorizacion() {
		JRibbonBand mayores = new JRibbonBand("Mayor", null);
		JCommandButton mayor = new JCommandButton("Mayor",
				getResizableIconFromResource("/fivestar/ui/images/mayor48.png"));
		mayor.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.contabilidad.ui.mayorizacion.ListadoCuentasContables
				// listCtasCont = new
				// omicron.contabilidad.ui.mayorizacion.ListadoCuentasContables(null,
				// true);
				// listCtasCont.setVisible(true);
				// JOptionPane.showMessageDialog(null,
				// "INFORMACION: no se puede verificar el usuario.");
			}
		});

		mayores.addCommandButton(mayor, RibbonElementPriority.TOP);

		mayores.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(mayores
						.getControlPanel())));
		return mayores;
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	protected JRibbonBand getBandaBalancedeComprobacion() {
		JRibbonBand balanceComprobacion = new JRibbonBand("Balance", null);
		JCommandButton balance = new JCommandButton("Balance de Comprobacion",
				getResizableIconFromResource("/fivestar/ui/images/BC48.png"));
		balance.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.contabilidad.ui.balancedecomprobacion.Balance balance
				// = new Balance(null, false);
				// balance.setVentana(null);

				// omicron.contabilidad.ui.balancedecomprobacion.Balance balance
				// = new
				// omicron.contabilidad.ui.balancedecomprobacion.Balance(null,
				// true);
				// balance.setVisible(true);
				// JOptionPane.showMessageDialog(null,
				// "INFORMACION: no se puede verificar el usuario.");
			}
		});

		balanceComprobacion
				.addCommandButton(balance, RibbonElementPriority.TOP);

		balanceComprobacion.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(balanceComprobacion
						.getControlPanel())));
		return balanceComprobacion;
	}

	protected RibbonTask getRibbonTaskContabilidad(String titulo, String keyTip) {
		RibbonTask contabilidad = new RibbonTask(titulo,
				getBandaAsientosContables(), getBandaMayorizacion(),
				getBandaBalancedeComprobacion());
		contabilidad.setKeyTip(keyTip);
		return contabilidad;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaCuentaBancaria() {
		JCommandButton registrarCuentaBancaria = new JCommandButton(
				"Registrar",
				getResizableIconFromResource("/fivestar/ui/images/CtaBank.png"));
		registrarCuentaBancaria.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JOptionPane.showMessageDialog(null,
				// "INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Registrar regCtaBancos = new
				// omicron.bancos.ui.cuentas.Registrar(null, true);
				// regCtaBancos.setVisible(true);
			}
		});

		JCommandButton buscarCuentaBancaria = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarCuentaBancaria.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// JOptionPane.showMessageDialog(null,
				// "INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Buscar buscarCtaBancos = new
				// omicron.bancos.ui.cuentas.Buscar(null, true);
				// buscarCtaBancos.setVisible(true);
			}
		});

		JCommandButton modificarCuentaBancaria = new JCommandButton(
				"Modificar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		modificarCuentaBancaria.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.bancos.ui.cuentas.ModificarCuenta modificarCtaBancos
				// = new omicron.bancos.ui.cuentas.ModificarCuenta(null, true);
				// modificarCtaBancos.setVisible(true);
			}
		});

		JRibbonBand cuentaBancaria = new JRibbonBand("Cuentas Bancarias", null);

		cuentaBancaria.addCommandButton(registrarCuentaBancaria,
				RibbonElementPriority.TOP);
		cuentaBancaria.addCommandButton(buscarCuentaBancaria,
				RibbonElementPriority.MEDIUM);
		cuentaBancaria.addCommandButton(modificarCuentaBancaria,
				RibbonElementPriority.MEDIUM);

		cuentaBancaria.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(cuentaBancaria
						.getControlPanel())));
		return cuentaBancaria;
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	protected JRibbonBand getBandaConsolidacion() {
		JRibbonBand informes = new JRibbonBand("Conciliaciones Bancarias", null);
		JCommandButton informeCuentas = new JCommandButton("Libro Bancos",
				getResizableIconFromResource("/fivestar/ui/images/InfCtas.png"));
		informeCuentas.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.bancos.ui.conciliacionbancaria.LibroBancos
				// libroBancos = new
				// omicron.bancos.ui.conciliacionbancaria.LibroBancos(null,
				// true);
				// libroBancos.setVisible(true);
			}
		});

		// JCommandButton consolidacion = new
		// JCommandButton("Conciliacion Bancaria",
		// getResizableIconFromResource("/fivestar/ui/images/Consolid.png"));
		// consolidacion.addActionListener(new ActionListener() {
		//
		// public void actionPerformed(ActionEvent e) {
		// omicron.bancos.ui.conciliacionbancaria.ConciliacionBancaria
		// conciliacionBancaria = new
		// omicron.bancos.ui.conciliacionbancaria.ConciliacionBancaria(null,
		// true);
		// conciliacionBancaria.setVisible(true);
		// }
		// });

		informes.addCommandButton(informeCuentas, RibbonElementPriority.TOP);
		// informes.addCommandButton(consolidacion, RibbonElementPriority.TOP);
		informes.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(informes
						.getControlPanel())));
		return informes;
	}

	protected RibbonTask getRibbonTaskBancos(String titulo, String keyTip) {
		RibbonTask bancos = new RibbonTask(titulo, getBandaCuentaBancaria(),
				getBandaConsolidacion());
		bancos.setKeyTip(keyTip);
		return bancos;
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	protected JRibbonBand getBandaActivos() {
		JCommandButton registrarActivo = new JCommandButton(
				"Registrar",
				getResizableIconFromResource("/fivestar/ui/images/ActFijosAdd.png"));
		registrarActivo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JCommandButton buscarActivo = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarActivo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JCommandButton buscarActivoFijo = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarActivoFijo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JCommandButton modificarActivoFijo = new JCommandButton(
				"Modificar",
				getResizableIconFromResource("/fivestar/ui/images/ActFijosMod.png"));
		modificarActivoFijo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JRibbonBand activos = new JRibbonBand("Activos Fijos", null);

		activos.addCommandButton(registrarActivo, RibbonElementPriority.TOP);
		activos.addCommandButton(buscarActivoFijo, RibbonElementPriority.TOP);
		activos.addCommandButton(modificarActivoFijo, RibbonElementPriority.TOP);

		activos.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(activos
						.getControlPanel())));
		return activos;
	}

	protected RibbonTask getRibbonTaskActivosFijos(String titulo, String keyTip) {
		RibbonTask activosFijos = new RibbonTask(titulo, getBandaActivos());
		activosFijos.setKeyTip(keyTip);
		return activosFijos;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaEmpleados() {
		JCommandButton registrarEmpleado = new JCommandButton("Registrar",
				getResizableIconFromResource("/fivestar/ui/images/CtaBank.png"));
		registrarEmpleado.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null,
						"INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Registrar regCtaBancos = new
				// omicron.bancos.ui.cuentas.Registrar(null, true);
				// regCtaBancos.setVisible(true);
			}
		});

		JCommandButton buscarEmpleado = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarEmpleado.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null,
						"INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Buscar buscarCtaBancos = new
				// omicron.bancos.ui.cuentas.Buscar(null, true);
				// buscarCtaBancos.setVisible(true);
			}
		});

		JCommandButton modificarEmpleado = new JCommandButton("Modificar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		modificarEmpleado.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null,
						"INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Buscar buscarCtaBancos = new
				// omicron.bancos.ui.cuentas.Buscar(null, true);
				// buscarCtaBancos.setVisible(true);
			}
		});

		JRibbonBand empleados = new JRibbonBand("Registro de Empleados", null);

		empleados
				.addCommandButton(registrarEmpleado, RibbonElementPriority.TOP);
		empleados
				.addCommandButton(buscarEmpleado, RibbonElementPriority.MEDIUM);
		empleados.addCommandButton(modificarEmpleado,
				RibbonElementPriority.MEDIUM);

		empleados.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(empleados
						.getControlPanel())));
		return empleados;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaCargos() {
		JCommandButton registrarCargo = new JCommandButton("Registrar",
				getResizableIconFromResource("/fivestar/ui/images/CtaBank.png"));
		registrarCargo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null,
						"INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Registrar regCtaBancos = new
				// omicron.bancos.ui.cuentas.Registrar(null, true);
				// regCtaBancos.setVisible(true);
			}
		});

		JCommandButton buscarCargo = new JCommandButton("Buscar",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		buscarCargo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null,
						"INFORMACION: no se puede verificar el usuario.");
				// omicron.bancos.ui.cuentas.Buscar buscarCtaBancos = new
				// omicron.bancos.ui.cuentas.Buscar(null, true);
				// buscarCtaBancos.setVisible(true);
			}
		});

		JCommandButton modificarCargo = new JCommandButton("Modificar",
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"));
		modificarCargo.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo continuar aqui
			}
		});

		JRibbonBand cargos = new JRibbonBand("Cargos", null);

		cargos.addCommandButton(registrarCargo, RibbonElementPriority.TOP);
		cargos.addCommandButton(buscarCargo, RibbonElementPriority.MEDIUM);
		cargos.addCommandButton(modificarCargo, RibbonElementPriority.MEDIUM);

		cargos.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(cargos
						.getControlPanel())));
		return cargos;
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	protected JRibbonBand getBandaRoles() {
		//JRibbonBand rolesDePago = new JRibbonBand("Roles de Pago", null);
		JCommandButton beneficioDescuento = new JCommandButton(
				"Beneficios - Descuentos",
				getResizableIconFromResource("/fivestar/ui/images/InfCtas.png"));
		beneficioDescuento.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Invocar mayor
			}
		});
		JCommandButton rol = new JCommandButton("Rol General",
				getResizableIconFromResource("/fivestar/ui/images/InfCtas.png"));
		rol.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Invocar mayor
			}
		});
		JCommandButton provisionesSociales = new JCommandButton(
				"Provisiones Sociales",
				getResizableIconFromResource("/fivestar/ui/images/InfCtas.png"));
		provisionesSociales.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Invocar mayor
			}
		});
		JCommandButton rolIndividual = new JCommandButton(
				"Rol Individual",
				getResizableIconFromResource("/fivestar/ui/images/Consolid.png"));
		rolIndividual.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Invocar mayor
			}
		});

		JRibbonBand roles = new JRibbonBand("Roles de Pago", null);

		roles.addCommandButton(beneficioDescuento, RibbonElementPriority.TOP);
		roles.addCommandButton(rol, RibbonElementPriority.TOP);
		roles.addCommandButton(provisionesSociales, RibbonElementPriority.TOP);
		roles.addCommandButton(rolIndividual, RibbonElementPriority.TOP);
		roles.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(roles
						.getControlPanel())));
		return roles;
	}

	protected RibbonTask getRibbonTaskRRHH(String titulo, String keyTip) {
		RibbonTask rrhh = new RibbonTask(titulo, getBandaEmpleados(),
				getBandaCargos(), getBandaRoles());
		rrhh.setKeyTip(keyTip);
		return rrhh;
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	protected JRibbonBand getBandaInformes() {
		JCommandButton balanceGeneral = new JCommandButton(
				"Balance General",
				getResizableIconFromResource("/fivestar/ui/images/ActFijosAdd.png"));
		balanceGeneral.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JCommandButton balanceDeResultados = new JCommandButton(
				"Balance de Resultados",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		balanceDeResultados.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JCommandButton informeAECID = new JCommandButton("Informe AECID",
				getResizableIconFromResource("/fivestar/ui/images/Buscar.png"));
		informeAECID.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// omicron.contabilidad.ui.informeaecid.InformeAECID
				// informeAECID = new
				// omicron.contabilidad.ui.informeaecid.InformeAECID(null,
				// true);
				// informeAECID.setVisible(true);
			}
		});

		JCommandButton informeEjecucionPresupuestaria = new JCommandButton(
				"Ejecucion Presupuestaria",
				getResizableIconFromResource("/fivestar/ui/images/ActFijosMod.png"));
		informeEjecucionPresupuestaria.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// todo Ubicar l alogica de llamdos par al ainsercion de un
				// siento
			}
		});

		JRibbonBand informes = new JRibbonBand("Informes", null);

		informes.addCommandButton(balanceGeneral, RibbonElementPriority.TOP);
		informes.addCommandButton(balanceDeResultados,
				RibbonElementPriority.TOP);
		informes.addCommandButton(informeAECID, RibbonElementPriority.TOP);
		informes.addCommandButton(informeEjecucionPresupuestaria,
				RibbonElementPriority.TOP);

		informes.setResizePolicies((List) Arrays
				.asList(new CoreRibbonResizePolicies.Mirror(informes
						.getControlPanel())));
		return informes;
	}

	protected RibbonTask getRibbonTaskInformes(String titulo, String keyTip) {
		RibbonTask informes = new RibbonTask(titulo, getBandaInformes());
		informes.setKeyTip(keyTip);
		return informes;
	}

	public MainMenu() {
		super("AppProject01");
		setMinimumSize(new Dimension(800, 600));
		String informacionUsuario = "Administrador General";
		if (informacionUsuario.equalsIgnoreCase("Administrador General")) {
			tipoUsuario = 0;
		}
		this.setDefaultCloseOperation(JRibbonFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		setExtendedState(JRibbonFrame.MAXIMIZED_BOTH);
		//Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		this.setApplicationIcon(getResizableIconFromResource("/fivestar/ui/images/Editar.png"));

		// try {
		// LectorPropiedades lector = new LectorPropiedades();
		// String fondo = lector.obtenerPropiedad("Fondo");
		// if (fondo != "") {
		// ImageIcon img = new ImageIcon(fondo);
		// panel.setImage(img.getImage());
		// } else {
		// BufferedImage img =
		// ImageIO.read(Prueba.class.getResourceAsStream("/fivestar/ui/images/fondo.jpg"));
		// panel.setImage(img);
		// }
		// } catch (Exception ex) {
		// System.out.println("" + ex.getMessage());
		// }

		// desktopPane = new JDesktopPane();
		// desktopPane.setBackground(Color.darkGray);
		// desktopPane.setBorder(new ImagenFondo());
		// getContentPane().add(desktopPane, BorderLayout.CENTER);

		desktopPane = new DesktopBackground();
		desktopPane.setBackground(Color.darkGray);
		desktopPane.setImagen("/fivestar/ui/images/fondo.jpg");
		getContentPane().add(desktopPane, BorderLayout.CENTER);

		this.getRibbon().addTask(
				getRibbonTaskAdministrativo("Administracion", "A"));
		this.getRibbon().addTask(getRibbonTaskPresupuesto("Presupuesto", "P"));
		this.getRibbon()
				.addTask(getRibbonTaskContabilidad("Contabilidad", "C"));
		this.getRibbon().addTask(getRibbonTaskBancos("Bancos", "B"));
		this.getRibbon().addTask(
				getRibbonTaskActivosFijos("Activos Fijos", "F"));
		this.getRibbon().addTask(getRibbonTaskRRHH("Recursos Humanos", "R"));
		this.getRibbon().addTask(getRibbonTaskInformes("Informes", "I"));

		this.getRibbon().configureHelp(
				getResizableIconFromResource("/fivestar/ui/images/ayuda.png"),
				new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						JOptionPane.showMessageDialog(null, "Ayuda");
					}
				});

		RibbonApplicationMenu menuPrincipal = new RibbonApplicationMenu();
		RibbonApplicationMenuEntryFooter amFooterProps = new RibbonApplicationMenuEntryFooter(
				null, "Acerca de", new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						System.out.println("Acerca de");
					}
				});
		RibbonApplicationMenuEntryFooter amFooterExit = new RibbonApplicationMenuEntryFooter(
				null, "Salir", new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						System.exit(0);
					}
				});

		menuPrincipal.addFooterEntry(amFooterProps);
		menuPrincipal.addFooterEntry(amFooterExit);

		menuPrincipal.addMenuSeparator();

		ConfigurarTema configurarTema = new ConfigurarTema();
		configurarTema.setVentana(this);

		ConfigurarFondo configurarFondo = new ConfigurarFondo();

		RibbonApplicationMenuEntryPrimary menuConfiguracionPrimaria = new RibbonApplicationMenuEntryPrimary(
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
				"Configuracion", null,
				JCommandButton.CommandButtonKind.POPUP_ONLY);

		RibbonApplicationMenuEntrySecondary menuConfiguacionTema = new RibbonApplicationMenuEntrySecondary(
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
				"Tema", configurarTema,
				JCommandButton.CommandButtonKind.ACTION_ONLY);
		menuConfiguacionTema
				.setDescriptionText("Cambia el tema de la aplicacion");
		menuConfiguacionTema.setActionKeyTip("T");

		RibbonApplicationMenuEntrySecondary menuConfiguacionFondo = new RibbonApplicationMenuEntrySecondary(
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
				"Tema", configurarFondo,
				JCommandButton.CommandButtonKind.ACTION_ONLY);
		menuConfiguacionTema
				.setDescriptionText("Cambia el tema de la aplicacion");
		menuConfiguacionTema.setActionKeyTip("P");
		// menuConfiguracionPrimaria.addSecondaryMenuGroup("raro", new
		// RibbonApplicationMenuEntrySecondary(getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
		// "Ayuda", configurarTema, CommandButtonKind.ACTION_ONLY));
		// menuConfiguracionPrimaria.addSecondaryMenuGroup("Configuraciones",
		// menuConfiguacionTema, new
		// RibbonApplicationMenuEntrySecondary(getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
		// "NuevaConfiguracion", configurarTema,
		// CommandButtonKind.ACTION_ONLY));

		menuConfiguracionPrimaria.addSecondaryMenuGroup("Configuraciones",
				menuConfiguacionTema, menuConfiguacionFondo);

		// menuPrincipal.addMenuEntry(new
		// RibbonApplicationMenuEntryPrimary(getResizableIconFromResource("/omicron/imagenes/Editar.png"),
		// "MenuUno", configurarTema, CommandButtonKind.ACTION_ONLY));
		menuPrincipal.addMenuEntry(menuConfiguracionPrimaria);

		menuPrincipal.addMenuEntry(new RibbonApplicationMenuEntryPrimary(
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
				"Cambiar Contrasenia", configurarTema,
				JCommandButton.CommandButtonKind.ACTION_ONLY));

		menuPrincipal.addMenuEntry(new RibbonApplicationMenuEntryPrimary(
				getResizableIconFromResource("/fivestar/ui/images/Editar.png"),
				"Ayuda", configurarTema,
				JCommandButton.CommandButtonKind.ACTION_ONLY));
		menuPrincipal.addMenuSeparator();
		this.getRibbon().setApplicationMenu(menuPrincipal);

	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {

			@Override
			public void run() {
				try {
					JRibbonFrame.setDefaultLookAndFeelDecorated(true);
					JDialog.setDefaultLookAndFeelDecorated(true);
					UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel());
				} catch (UnsupportedLookAndFeelException unsupportedLookAndFeelException) {
					System.out.println(unsupportedLookAndFeelException.getMessage());
				}				  
				
				MainMenu c = new MainMenu();
				Rectangle r = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
				c.setPreferredSize(new Dimension(r.width, r.height));
				c.pack();
				c.setLocation(r.x, r.y);
				c.setVisible(true);
				c.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			}
		});
	}

}
